(a) Field of the Invention
The present invention relates to a VoP (Voice over Packet) system. More specifically, the present invention relates to a scheduling method that allows a DSP (Digital signal Processor) to process at least two channels in a VoP system.
(b) Description of the Related Art
The DSP of the VoP system executes algorithms of echo cancellation, fax/modem transmissions, voice codec, etc. to encode voice signals into packets, and to decode packetized voice to analog signal as illustrated in FIG. 4. The packets thus generated contain coded voice and a timestamp, which represents time that packet is generated. These packets are transmitted over packet networks. Voice can be reproduced with the coded voice and its time stamp in the transmitted packet.
However, delay from sender to receiver is not constant and dynamically varies on the network situation. In an attempt to eliminate the effect of the delay difference, a delay time distribution 201 is predicted and the packets are stored in the buffer for a time period 202 long enough to minimize the effect of the delay difference, as illustrated in FIG. 2.
In addition, the channels to be processed in the DSP must be properly scheduled to avoid the case where the TDM(Time Division Multiplexing) buffer is empty, so as to prevent a deterioration of the voice quality in decoding the packets received from the packet network. Also, the channels must be scheduled to minimize the delay when the voice data are encoded and transferred from the TDM network to the packet network.
For a specific channel i processed in the DSP, the required time to output a packet from the network to the actual TDM hardware or an analog telephone interface comes to Tij+Tip+Tit, where Tid is an average propagation delay in the network; Tij is a time designated to store a received packet in a jitter buffer; Tip is the longest time required for voice processing in the DSP; and Tit is a buffering time for the processed voice being sent to the TDM hardware or the analog telephone interface. The packet sent to the network contains a time stamp that indicates the time when the packet is transferred from the sender.
Conventionally, the packet is not processed but is stored for a time of Tij so that Tit is a very short constant time. By processing channels for a time of Tid+Tij, the fluctuation of the propagation delay in the network can be absorbed to enable a continuous output of voice. In this method, the jitter of the network is absorbed but the DSP has to schedule the channels at an appropriate time because Tit is extremely short. Otherwise, a deterioration of the voice quality occurs.
The required processing time of the algorithms for a channel executed on the DSP is not constant and multiple channels are processed in a DSP. So the processing load of the DSP fluctuates at all times, as illustrated in FIG. 3.
Each channel cannot be properly processed when it does not have sufficient execution time. Conventionally, the maximum number of channels that can be processed in the DSP is determined based on the maximum execution time required for the algorithms.
This determination method is, however, disadvantageous in that the DSP would be idle because each channel processing does not always require the maximum execution time. This inefficiency is more evident when variance of minimum and maximum execution time is large.
The conventional method for executing DSP algorithms requiring a different processing capability from time to time is disclosed in U.S. Pat. No. 5,995,540.
The method disclosed in U.S. Pat. No. 5,995,540 enhances the processing efficiency of the DSP by regularly executing the DSP algorithms and then using an surplus processing resource for the execution of user application programs. This method is, however, inapplicable to the systems such as a VoP gateway in which only the DSP algorithms are repeatedly executed on a DSP without any other application program.
Another conventional scheduling method for DSP algorithms is disclosed in International Publication No. 01/35228.
International Publication No. 01/35228 is directed to a multi-channel scheduling method that its number of channels is determined on their average execution time.
This method estimates whether or not all channel can be executed properly with sufficient execution time every cycle. In case of deficiency of the processing capacity, several channels are selected as victims and their processing is simplified or omitted so as to process all channels until the end of each cycle. This method may be successful in processing a larger number of channels relative to the other conventional methods, but encounters a problem that the quality of the processing result can deteriorate because the processing for channels selected as victims is simplified or omitted.